package com.attendance.www.hr.service;

import java.util.Date;
import java.util.List;

import com.attendance.www.hr.beans.SalaryBean;
import com.attendance.www.hr.beans.SalaryListBean;
import com.attendance.www.hr.beans.SalaryRequestBean;
import com.attendance.www.hr.beans.SalaryRequestPageBean;

public interface ISalaryRequestService {

	/**
	 * 查询工资报表提交历史
	 * @param employeeId 提交人id
	 * @return
	 */
	public SalaryRequestPageBean getSalaryRequestList(SalaryRequestBean salaryRequestBean);
	
	/**
	 * 提交工资报表申请("保存并提交"按钮)
	 * @param salaryRequestBean
	 * @return
	 */
	public boolean saveSalaryRequestList(SalaryListBean salaryListBean);
	
	/**
	 * by审批人查询申请信息
	 * @param salaryRequestBean
	 * @return
	 */
	public SalaryRequestPageBean getSalaryRequestListByApl(SalaryRequestBean salaryRequestBean);
	
	/**
	 * 撤回申请
	 * @param requestId
	 * @return
	 */
	public boolean getBackSalaryRequest(Integer salaryRequestId);
	
	/**
	 * 撤回申请验证
	 * true 不能撤回，false 可以撤回
	 * @param requestId
	 * @return
	 */
	public boolean verifyGetBackRequest(Integer salaryRequestId);
	
	/**
	 * 删除申请
	 * @param requestId
	 * @return
	 */
	public boolean deleteSalaryRequest(Integer salaryRequestId);
	
	/**
	 * 获取报表年月
	 * @param employeeId
	 * @return
	 */
	public SalaryListBean getYearMonth(SalaryBean salaryBean);

	/**
	 * 验证提交报表的日期，是否同一公司的有重叠
	 * @param salaryListBean
	 * @return true有重叠
	 */
	public boolean getVerifyDate(Date startDate, Date endDate, List<String> corporationCodeList, String employeeNo);
	
	/**
	 * 撤回后再次提交，对应提交历史页"提交"按钮
	 * @param salaryRequestId
	 * @return
	 */
	public boolean saveSalaryRequestAgain(Integer salaryRequestId);
}
